/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package negocio;

import Persistencia.PersistenciaMensaje;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author JAVA
 */
public class Mensaje {
    private int id;
    private Usuario emisor;
    private Usuario receptor;
    private Date fecha;
    private String texto;

    public Mensaje(){
        
    }
    public Mensaje(Usuario emisor, Usuario receptor, Date fecha, String texto){
        this.emisor = emisor;
        this.receptor = receptor;
        this.fecha = fecha;
        this.texto = texto;
    }
    public Mensaje(int id, Usuario emisor, Usuario receptor, Date fecha, String texto) {
        this.id = id;
        this.emisor = emisor;
        this.receptor = receptor;
        this.fecha = fecha;
        this.texto = texto;
    }

    public Usuario getEmisor() {
        return emisor;
    }

    public void setEmisor(Usuario emisor) {
        this.emisor = emisor;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Usuario getReceptor() {
        return receptor;
    }

    public void setReceptor(Usuario receptor) {
        this.receptor = receptor;
    }

    public String getTexto() {
        return texto;
    }

    public void setTexto(String texto) {
        this.texto = texto;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Mensaje other = (Mensaje) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 5;
        hash = 67 * hash + this.id;
        return hash;
    }

    @Override
    public String toString() {
        return "Mensaje{" + "id=" + id + ", emisor=" + emisor + ", receptor=" + receptor + ", fecha=" + fecha + ", texto=" + texto + '}';
    }
    
    public int guardarMensaje(){
        return PersistenciaMensaje.guardarmensaje(this);
    }
    
    public static ArrayList<Mensaje> obtenerMensajesEnviados(Usuario user){
        return PersistenciaMensaje.obtenerMensajesEnviados(user);
    }
    public static ArrayList<Mensaje> obtenerMensajesRecibidos(Usuario user){
        return PersistenciaMensaje.obtenerMensajesRecibidos(user);
    }
    
    public static int obtenerNumeroEnviados(Usuario u){
        return PersistenciaMensaje.numeroMensajesEnviados(u);
    }
    public static int obtenerNumeroRecibidos(Usuario u){
        return PersistenciaMensaje.numeroMensajesRecibidos(u);
    }
    
    public static ArrayList<Mensaje> obtenerMensajesEnviadosPaginados(Usuario user, Paginacion p){
        return PersistenciaMensaje.obtenerMensajesEnviadosPaginados(user, p);
    }
    public static ArrayList<Mensaje> obtenerMensajesRecibidosPaginados(Usuario user, Paginacion p){
        return PersistenciaMensaje.obtenerMensajesRecibidosPaginados(user,p);
    }
}
